package com.athena.api.assignment;

import java.io.Serializable;
import java.util.List;

import com.athena.api.model.assignment.Assignment;
import com.athena.api.model.assignment.Comment;

/**
 * This is assignment service meant for providing all method for managing assignment.
 * @author Pankaj.Mishra
 *
 */
public interface AssignmentService {

	/**
	 * 
	 * @param facultyId
	 * @param classID
	 * @param assignmentDetail
	 */
	public void uploadAssingment(Serializable facultyId, Serializable classID, Assignment assignmentDetail) throws Exception;
	
	/**
	 * 
	 * @param facultyId
	 */
	public List<Assignment> getFacultyAssignment(Serializable facultyId)  throws Exception;
	
	/**
	 * 
	 * @param studentId
	 */
	public List<Assignment> getStudentAssignment(Serializable studentId)  throws Exception;

	/**
	 * 
	 * @param assignmentId
	 * @param comment
	 * @param personId
	 */
	public void addCommentOnAssignment(Serializable assignmentId, String comment, Serializable personId) throws Exception;
	
	/**
	 * 
	 * @param assignmentId
	 */
	public List<Comment> getCommentsOnAssignment(Serializable assignmentId)  throws Exception;
	

}
